﻿
using System.ComponentModel;
using System.Runtime.Serialization;

namespace NetBay.Core.BusinessEntities
{
    [DataContract]
    public class NumerizationOperator : ReturnObject, INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;

        [DataMember]
        public string FolderTypeName
        {
            get { return _foldertypename; }
            set
            {
                _foldertypename = value;
                OnPropertyChanged("FolderTypeName");
            }
        } private string _foldertypename;

        [DataMember]
        public long UserId
        {
            get { return _userId; }
            set
            {
                _userId = value;
                OnPropertyChanged("UserId");
            }
        } 
        private long _userId;
        
        [DataMember]
        public string FullName
        {
            get { return _fullname; }
            set
            {
                _fullname = value;
                OnPropertyChanged("FullName");
            }
        } private string _fullname;

        [DataMember]
        public int NbFolderClose
        {
            get { return _nbFolderClose; }
            set
            {
                _nbFolderClose = value;
                OnPropertyChanged("NbFolderClose");
            }
        } private int _nbFolderClose;

        [DataMember]
        public int NbFolderProcessed
        {
            get { return _nbFolderProcessed; }
            set
            {
                _nbFolderProcessed = value;
                OnPropertyChanged("NbFolderProcessed");
            }
        } private int _nbFolderProcessed;

        [DataMember]
        public int NbFolderToReview
        {
            get { return _nbfolderToReview; }
            set
            {
                _nbfolderToReview = value;
                OnPropertyChanged("NbFolderToReview");
            }
        } private int _nbfolderToReview;

        [DataMember]
        public int NbFileScan
        {
            get { return _nbFileScan; }
            set
            {
                _nbFileScan = value;
                OnPropertyChanged("NbFileScan");
            }
        } private int _nbFileScan;

        [DataMember]
        public double NbFolderProcessedPercents
        {
            get { return _nbFolderProcessedPercents; }
            set
            {
                _nbFolderProcessedPercents = value;
                OnPropertyChanged("NbFolderProcessedPercents");
            }
        } private double _nbFolderProcessedPercents;

        [DataMember]
        public double NbFolderClosePercents
        {
            get { return _nbFolderClosePercents; }
            set
            {
                _nbFolderClosePercents = value;
                OnPropertyChanged("NbFolderClosePercents");
            }
        } private double _nbFolderClosePercents;

        [DataMember]
        public double NbFolderToReviewPercents
        {
            get { return _nbFolderToReviewPercents; }
            set
            {
                _nbFolderToReviewPercents = value;
                OnPropertyChanged("NbFolderToReviewPercents");
            }
        } private double _nbFolderToReviewPercents;

        [DataMember]
        public double NbFileScanPercents
        {
            get { return _nbFileScanPercents; }
            set
            {
                _nbFileScanPercents = value;
                OnPropertyChanged("NbFileScanPercents");
            }
        } private double _nbFileScanPercents;

        protected void OnPropertyChanged(string propertyName)
        {
            if (this.PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }
    }
}
